﻿<%
'''依赖层级:000
'''底层字符串类,
'如果外部使用本类可以直接进行实例化，但不建议使用，应使用外部string类
Class AshapoString
	
	'''截取用某个特殊字符(串)分隔的字符串的特殊字符
	'''本函数为底层函数,外部请使用CLeft\CRight函数
	'p_s:要截取的字符串
	'p_m:特殊字符(串)
	'p_t:标识位,值0时取截取左部,值1时取截取右部,其余返回空字符串
	Private Function cutLR_(Byval p_s, Byval p_m, Byval p_t)
		Dim t_n : t_n = Instr(p_s, p_m)
		If t_n>0 Then
			If p_t = 0 Then
				cutLR_ = Left(p_s, t_n-1)
			ElseIf p_t = 1 Then
				cutLR_ = Mid(p_s, t_n + Len(p_m))
			End If
		Else
			cutLR_ = p_s
		End If
	End Function

	'''截取用某个特殊字符(串)分隔的字符串的特殊字符左边部分
	'p_s:要截取的字符串
	'p_m:特殊字符(串)
	Public Function CLeft(Byval p_s, Byval p_m)
		CLeft = cutLR_(p_s, p_m, 0)
	End Function

	'''截取用某个特殊字符分隔的字符串的特殊字符右边部分
	'p_s:要截取的字符串
	'p_m:特殊字符(串)
	Public Function CRight(Byval p_s, Byval p_m)
		CRight = cutLR_(p_s, p_m, 1)
	End Function


	'''将类似“Table:ID:Name”字符按“:”分割成数组Table\ID:Name
	'p_s:要分割的字符串
	Public Function Param(Byval p_s)
		Dim t_a(1), t_t
		t_t = Instr(p_s, ":")
		If t_t > 0 Then
			t_a(0) = Left(p_s, t_t-1)
			t_a(1) = Mid(p_s, t_t+1)
		Else
			t_a(0) = p_s
			t_a(1) = ""
		End If
		Param = t_a
	End Function

	'''将类似“Table:ID:Name”字符按“:”分割成数组Name\Table:ID
	'p_s:要分割的字符串
	Public Function ParamRev(Byval p_s)
		Dim t_a(1), t_t : t_t = InstrRev(p_s, ":")
		If t_t > 0 Then
			t_a(0) = Mid(p_s, t_t+1)
			t_a(1) = Left(p_s, t_t-1)
		Else
			t_a(0) = p_s
			t_a(1) = ""
		End If
		ParamRev = t_a
	End Function
End Class
%>